import { ModuleDataFetchDependency, ModuleDataFetchFuncByDependency, ModulePropsWithoutSSP, Contact, URLWithoutQuery, DataFetchRequest } from '../constants.js';
export declare function getModuleDataDependecyTypeFrom(func: any): ModuleDataFetchDependency | undefined;
export declare class UrlWithoutQuery extends URL implements URLWithoutQuery {
    static from(url: URL | URLWithoutQuery | string): UrlWithoutQuery;
    get search(): '';
    get hash(): '';
    get password(): '';
    get hasNoQuery(): true;
}
export declare function getModuleDataDependenciesAsObjectFrom(depType: ModuleDataFetchDependency): import("../constants.js").ModuleDataFetchDepsObject;
export declare function filterToModuleDataDepsIncludedIn<T extends ModuleDataFetchDependency>(depType: T, { url, contact, request, }: {
    url?: T extends 'moduleProps-urlWithoutQuery' ? URLWithoutQuery : URL;
    contact?: T extends 'moduleProps-urlWithQuery-contact' ? Contact : undefined;
    request?: T extends 'moduleProps-urlWithQuery-contact-fullRequest' ? DataFetchRequest : undefined;
}): {
    url?: URLWithoutQuery | URL;
    contact?: Contact;
    request?: DataFetchRequest;
};
export declare function withModuleProps<T extends 'moduleProps'>(func: ModuleDataFetchFuncByDependency[T]): ((props: ModulePropsWithoutSSP, extraDeps: {
    url: URLWithoutQuery;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>) | ((props: ModulePropsWithoutSSP, { url }: {
    url: URL;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>);
export declare function withUrlPath<T extends 'moduleProps-urlWithoutQuery'>(func: ModuleDataFetchFuncByDependency[T]): ((props: ModulePropsWithoutSSP, extraDeps: {
    url: URLWithoutQuery;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>) | ((props: ModulePropsWithoutSSP, { url }: {
    url: URL;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>);
export declare function withUrlAndQuery<T extends 'moduleProps-urlWithQuery'>(func: ModuleDataFetchFuncByDependency[T]): ((props: ModulePropsWithoutSSP, extraDeps: {
    url: URLWithoutQuery;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>) | ((props: ModulePropsWithoutSSP, { url }: {
    url: URL;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>);
export declare function withContact<T extends 'moduleProps-urlWithQuery-contact'>(func: ModuleDataFetchFuncByDependency[T]): ((props: ModulePropsWithoutSSP, extraDeps: {
    url: URLWithoutQuery;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>) | ((props: ModulePropsWithoutSSP, { url }: {
    url: URL;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>);
export declare function withRequest<T extends 'moduleProps-urlWithQuery-contact-fullRequest'>(func: ModuleDataFetchFuncByDependency[T]): ((props: ModulePropsWithoutSSP, extraDeps: {
    url: URLWithoutQuery;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>) | ((props: ModulePropsWithoutSSP, { url }: {
    url: URL;
}) => import("../constants.js").ModuleDataFetchResult | Promise<import("../constants.js").ModuleDataFetchResult>);
